using System;
using Me.Prettyprint.Hector.Api;

namespace Me.Prettyprint.Hector.Api.Beans
{
    /// <summary>
    /// Hector Counter Column definition.
    /// </summary>
    /// <typeparam name="N"></typeparam>
	public interface HCounterColumn<N>
	{
        N GetName();
        HCounterColumn<N> SetName(N name);
        HCounterColumn<N> SetValue(long value);
        long GetValue();
        byte[] NameBytes
        {
            get;
        }
        HCounterColumn<N> Clear();
        int Ttl
        {
            get;
        }
        HCounterColumn<N> SetTtl(int ttl);
        HCounterColumn<N> Apply(long value, int ttl);
        Serializer<N> NameSerializer
        {
            get;
        }
	}
}